package com.ruoyi.evaluate.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ruoyi.base.domain.BaseStudent;
import com.ruoyi.evaluate.domain.EvaluateResults;

/**
 * 评价结果Mapper接口
 * 
 * @author yepanpan
 * @date 2020-11-09
 */
public interface EvaluateResultsMapper 
{
    /**
     * 查询评价结果
     * 
     * @param id 评价结果ID
     * @return 评价结果
     */
    public EvaluateResults selectEvaluateResultsById(Long id);

    /**
     * 查询评价结果列表
     * 
     * @param evaluateResults 评价结果
     * @return 评价结果集合
     */
    public List<EvaluateResults> selectEvaluateResultsList(EvaluateResults evaluateResults);

    /**
     * 查询未评价学生
     * 
     * @param semId 学期
     * @return 评价结果集合
     */
    public List<BaseStudent> selectUnEvaluateStudent(Long semId);
    
    /**
     * 批量插入空评价结果
     * 
     * @param evaluateResults 评价结果
     * @return 结果
     */
    public int genStudents(EvaluateResults evaluateResults);

    /**
     * 更新评价得分
     * 
     * @param evaluateResults 评价结果
     * @return 结果
     */
    public int updateEvaluateScore(EvaluateResults evaluateResults);
    
    
    /**
     * 新增评价结果
     * 
     * @param evaluateResults 评价结果
     * @return 结果
     */
    public int insertEvaluateResults(EvaluateResults evaluateResults);

    /**
     * 修改评价结果
     * 
     * @param evaluateResults 评价结果
     * @return 结果
     */
    public int updateEvaluateResults(EvaluateResults evaluateResults);

    /**
     * 删除评价结果
     * 
     * @param id 评价结果ID
     * @return 结果
     */
    public int deleteEvaluateResultsById(Long id);

    /**
     * 批量删除评价结果
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteEvaluateResultsByIds(Long[] ids);

    /**
     * 删除指定学期的评价结果
     * 
     * @param semId 学期ID
     * @return 结果
     */
    public int deleteEvaluateResultsBySemster(Long semId);
    

    /**
     * 计算指定学期的评价结果
     * 
     * @param semId 学期ID
     * @param qs 量化得分比例
     * @param es 评价得分比例
     * @return 结果
     */
    public int countEvaluateResults(@Param("semId")Long semId, @Param("qs")Float qs, @Param("es")Float es);


    /**
     * 计算指定学期的量化得分
     * 
     * @param semId 学期ID
     * @return 结果
     */
    public int countQuantifyResults(@Param("semId")Long semId);
    
}
